When a moving part (table, etc.) of a machine tool or an arm of a robot collides with an obstacle, a servomotor for actuating the moving part or the arm produces a large torque so as to move the same according to a move command. Thus, in some cases, the moving part or the arm mechanism is damaged. To avoid damaging of mechanical parts of a machine, there has been proposed a method in which a position deviation of a servo system is detected, and when the position deviation becomes larger than a preset value, it is determined that an abnormal load is applied, i.e., a collision has occurred, and a method in which the drive current of a servomotor is detected, and when the drive current becomes larger than a preset value, it is determined that a collision has occurred. However, in these methods wherein collision or the like is detected based on an increase of the position deviation or the drive current, the servomotor is already producing a large torque at the time the collision is detected, and there still is a possibility of the mechanism being damaged by a large force.
In view of the foregoing, the applicant of the present application has proposed a method wherein a disturbance torque is estimated by a disturbance estimation observer, and when the estimated disturbance torque has become larger than a preset value, it is determined that the load is abnormal, i.e., collision or the like is occurring (cf. Unexamined Japanese Patent Publication No. 3-196313). The disturbance torque is the torque variation due to a collision of an arm, etc. The collision of the arm is detected by the disturbance estimation observer which is applied to a digital servo system.
However, in the case of estimating the disturbance torque by the aforesaid disturbance estimation observer, the estimated disturbance torque includes a gravity term, a kinetic friction term, etc., and a true external force arising from collision or the like cannot be detected. Particularly in a welding robot or the like, the orientation of the robot varies according to welding positions, and the influence of gravity is largely dependent on the orientation. That is, when the robot maintains a certain orientation, the servomotor, as the drive source, outputs a force resisting gravity so as to retain the orientation.
In carrying out spot welding by means of a welding robot, if adhesion to a weld or the like occurs at the transfer of welding spots (when the robot is moved toward a next welding point, and adhesion of the electrode tip to the weld in the current welding point occurs), it is very difficult to detect a subtle change in load caused by such adhesion when the aforesaid conventional abnormal load detection method, using the disturbance estimation observer, is employed.
FIGS. 7 and 8 are graphs showing the results of experiments, wherein an arm of a spot welding robot is held stationary for a while after spot welding and then is returned to a standby position. Each of the graphs shows a change of a torque command Tc (in the figures, a current value I, output to a servomotor as the torque command Tc, is plotted) for a longitudinal axis which actuates the robot arm, and a change of a disturbance torque TL acting upon the axis, during a period of one second. The abscissa indicates time (one graduation corresponds to 100 msec), and the ordinate indicates voltage representing torque values (one graduation corresponds to 1 V). FIG. 7 illustrates a case wherein the distal end of a spot gun is moved without the adhesion to a weld after spot welding, and FIG. 8 illustrates a case wherein the distal end of the gun has adhered to a weld. As seen from FIGS. 7 and 8, fluctuation of the disturbance torque, which is not observed in FIG. 7, is observed in the case of FIG. 8 when the distal end of the spot gun starts moving. However, a comparison between FIGS. 7 and 8 reveals that there is only a slight difference in the estimated disturbance torques T1 after a lapse of a predetermined time from the start of movement of the movable part (in the examples of FIGS. 7 and 8; after a lapse of 350 msec), and this difference is very small relative to a disturbance torque T0, which varies depending on the state during which the robot is at rest. Accordingly, with the conventional method using the total disturbance torque, inclusive of gravity, etc., for comparison, it is difficult to detect such a slight difference.